1. Field of the Invention
The present invention generally relates to speech encoding and decoding methods and speech encoding and decoding apparatuses of an A-b-S (Analysis-by-Synthesis) type using vector quantization, and, more particularly, to a speech encoding and decoding method and a speech encoding and decoding apparatus in which a memory size is reduced and the volume of computation is reduced.
The A-b-S vector quantization speech encoding and decoding method, as represented by Code Excited Linear Prediction (CELP) coding method, is used to compress a speech signal into a signal having a rate of 4-6 kbps. Such a speech compression process is used in a communication system in private organizations and is also used to provide an efficient digital mobile wireless system. In the field of speech compression, there is a growing demand for reduction of the volume of process and of the hardware size.
2. Description of the Related Art
In the A-b-S vector quantization speech encoding and decoding method, a code vector is determined so as to minimize a power difference between an input signal and a reproduced signal produced on the basis of the code vector.
FIG. 1 is a block diagram showing a concept of the A-b-S vector quantization speech encoding and decoding. Referring to FIG. 1, an A-b-S vector quantization speech encoding and decoding apparatus comprises a code book 61, a coefficient provider 62, a linear predictive synthesis filter 63, a subtractor 64 and a error estimation unit 65 for estimating an error signal power.
The code book 61 stores a plurality of code vectors C. The coefficient provider 62 multiplies the code vector C by a gain g. An output gC of the coefficient provider 61 is input to the linear predictive synthesis filter 63 so as to output a reproduced signal gAC. The reproduced signal gAC and the input signal X are input to the subtractor 64 so as to produce an error signal E. The error estimation unit 65 searches for a code vector that minimizes the power difference indicated by the error signal E. The error estimation unit 65 outputs an index indicating the candidate code vector as encoding information. When the error estimation unit 65 receives the encoding information, it reads out the code vector corresponding to the index from the code book so that the speech is reconstructed.
FIG. 2 is a block diagram of an apparatus operated on CELP according to the related art. Referring to FIG. 2, the CELP apparatus comprises a stochastic code book 71, an adaptive code book 72, coefficient providers 73 and 74, linear predictive synthesis filters 75 and 78, subtractors 76 and 79, and error estimation units 77 and 80. The stochastic code book 71 is adapted for random speech source, the adaptive code book 72 is adapted for pitch speech source. The adaptive code vectors stored in the adaptive code book 72 are adaptively updated, and the stochastic code vectors stored in the stochastic code book 71 are designated as a fixed code book.
The code vector C from the stochastic code book 71 is multiplied by a gain g. The linear predictive synthesis filter 75 produces a reproduced signal gAC based on an output gC of the coefficient provider 73. An error signal E indicating a difference between the reproduced signal gAC and the input signal y is obtained. The code vector C that minimizes the power difference indicated by the error signal E is identified. Similarly, the adaptive code vector (pitch vector) P from the adaptive code book 72 is multiplied by a gain b. The linear predictive synthesis filter 78 produces a reproduced signal bAP based on an output bP of the coefficient provider 74. An error signal indicating a difference between the reproduced signal bAP and the input signal X is obtained. The code vector that minimizes the power difference indicated by the error signal is identified.
The stochastic code book 71 stores a large number of stochastic code vectors adapted for a random speech source. Therefore, a considerable memory size is required to constitute the stochastic code book 71. For example, given the vector dimension size=40 (corresponding to 8 kHz sampling for a duration of 5 ms) and the basic vector count M=1024, a memory size of 40960 words is required. Accordingly, there have been proposals for an overlapping code book and a structured code book that meet the requirement for reduction of the size of the memory constituting the stochastic code book.
FIGS. 3A and 3B show the overlapping code book according to the related art. FIG. 3A is a schematic block diagram showing vector quantization using the overlapping code book. FIG. 3B shows how overlapping vectors are generated. Referring to FIG. 3A, the vector quantization system using the overlapping code book comprises a random series 81, an overlapping code book generation unit 82, a stochastic code book 83 as an overlapping code book, a coefficient provider 84, a linear predictive synthesis filter 85, a subtractor 86, and a error estimation unit 87. The random series 81 is random speech information for coding and decoding purposes. The process for identifying the code vector executed by the stochastic code book 83 is the same as that described with reference to FIGS. 1 and 2, and the description thereof will be omitted.
As shown in FIG. 3B, the random series 81 at least has a size of N+(M-1)K where N indicates a vector dimension size, M indicates a basic vector count and K indicates a shift. The overlapping code book generation unit 82 retrieves code vectors having the vector dimension size N from the random series 81 in accordance with the shift K, so that the stochastic code book 83 having the basic vector count M is formed.
Assuming that N=40, M=1024 and K=1, N+(M-1)K=1063 (words). The memory size is 1/40 that of the stochastic code book storing the code vectors of N=40 in accordance with the basic vector count M=1024 and having a memory size of 40960 words.
FIGS. 4A and 4B show the structured code book according to the related art. FIG. 4A is a schematic block diagram showing vector quantization using the structured code book. FIG. 4B shows how a tree-structured delta code is generated. Referring to FIG. 4A, the vector quantization system using the tree-structured code book comprises a basic vector unit 91, a code book generation unit 92 that operates on vector addition and subtraction, a stochastic code book 93, a coefficient provider 94, a linear predictive synthesis filter 95, a subtractor 96 and a error estimation unit 97. The process for identifying the code vector executed by the stochastic code book 93 is the same as that described with reference to FIGS. 1 and 2, and the description thereof will be omitted.
Referring to the tree structure of FIG. 4B, the basis vector unit 91 stores an initial vector C.sub.0 and delta vectors .DELTA.C.sub.1, .DELTA.C.sub.2, . . . .DELTA.C.sub.9 each associated with a respective layer. The code book generation unit 92 produces code vectors by addition and subtraction of the basic vectors C.sub.0, .DELTA.C.sub.1, .DELTA.C.sub.2, . . . .DELTA.C.sub.9, so as to generate the stochastic code book 93. For example, using the initial vector C.sub.0 and the delta vectors .DELTA.C.sub.1 and .DELTA.C.sub.2, the code book generation unit 92 produces code vectors C.sub.0 -C.sub.4 as follows.
C.sub.0 =C.sub.0 +0 PA1 C.sub.1 =C.sub.0 +.DELTA.C.sub.1 PA1 C.sub.2 =C.sub.0 -.DELTA.C.sub.1 PA1 C.sub.3 =C.sub.1 +.DELTA.C.sub.2 =C.sub.0 +.DELTA.C.sub.1 +.DELTA.C.sub.2 PA1 C.sub.4 =C.sub.1 -.DELTA.C.sub.2 =C.sub.0 +.DELTA.C.sub.1 -.DELTA.C.sub.2 PA1 C.sub.1021 =C.sub.510 +.DELTA.C.sub.9 =C.sub.0 -.DELTA.C.sub.1 -.DELTA.C.sub.2 - . . . +.DELTA.C.sub.9 PA1 C.sub.1022 =C.sub.510 -.DELTA.C.sub.9 =C.sub.0 -.DELTA.C.sub.1 -.DELTA.C.sub.2 - . . . -.DELTA.C.sub.9
Similarly, the code vectors C.sub.1021 and C.sub.1022 are obtained as follows.
Thus, the stochastic code book 93 including the code vectors C.sub.0, C.sub.1, C.sub.2, C.sub.3, . . . C.sub.1022 can be generated.
In this case, by storing a total of ten vectors including the initial vector C.sub.0 and the nine delta vectors .DELTA.C.sub.1 -.DELTA.C.sub.9 in the basic vector unit 91, a total of 1023 code vectors can be generated. Accordingly, the basic vector unit 91 need only have a memory size of 400 words (N.multidot.log.sub.2 M=40.multidot.10=400), given that the vector dimension size N=40 and the basic vector count M=1024. Accordingly, the memory size is 1/100 that of the stochastic code book storing the code vectors of N=40 in accordance with the basic vector count M=1024 and having a memory size of 40960 words.
The structured code book described above is disclosed in Japanese Laid-Open Patent Application No. 5-158500.
The overlapping code book shown in FIGS. 3A and 3B enables reduction of a memory size from N.multidot.M to N+(M-1)K. The structured code book shown in FIGS. 4A and 4B enables reduction of a memory size to N.multidot.log.sub.2 M. However, since the A-b-S vector quantization speech encoding is applied to a mobile telephone system, further reduction of a memory size and total amount of computation is called for.